[转载]漫谈Excel里的单元格与合并单元格

相信很多人,接触Word的机会可能比Excel还多,尤其是那些专门去“学校”学打字或者Office的,基本上接触的都是Word。
大家应该还记得,在Word里画出来的表格,用个“拆分”命令或者随便画条线就可以把单元格给拆分成两个或者更多……

这样问题就来了,很多刚用Excel的小盆友,往往东奔西跑、攀山涉水、苦苦追寻拆分单元格的方法……就像多少人追寻长生不老药一样。

我不知道世人有没有找到过长生不老药,但在Excel里追寻拆分单元格的方法,却一定是徒劳无功的!
目前必然是这样的,即使若干年后MS技术大变革,估计也一样……

在英文里,单元格的叫法是“Cell”,而Cell还有另外一层意思,就是“细胞”,所以…………
Excel里是由很多个Cell组成的一张表格,不同版本格式的工作表,单元格的数量是固定的,
比如说2003版及之前的xls格式,总共有65536行,256列(IV),这样相乘起来,就是所有单元格的个数。
65536 = 4^8  = 2^16 
256 = 2^8
P.S:这也是为什么很多INDEX+SMALL+IF+ROW的提取公式里,用到4^8……

xlsx格式能支持的数量就更多了,行数是2^20 =1048576, 列数是2^14 = 16384
-----------------------------------------------------------------

Section Ⅰ:如何制作不规则表格

扯远了,回到原来的问题吧,既然苦苦寻找的拆分方法没有了,那现实中的问题可怎么办?
古话说:穷则变,变则通!很有道理的,我就很喜欢这句话……
Excel虽然没有提供拆分的技术,但提供了“合并”。
用最小的单元格合并拼凑,不是比从大的拆分来得更简单吗?而且也更加灵活……
就像“雕塑”和“雕刻”……

理清思路之后,就尽情合并,不尽人意时,还可以取消合并……何难之有?
看人家是怎么把表格合并成一个简历的!

[转载]漫谈Excel里的单元格与合并单元格


Excel里的表格格式固定之后,不会随便移动,这一点比Word还要强劲,所以越来越多的人喜欢在Excel里制作一些打印模版,当然,这是很不错的,我甚至有些排版,都喜欢直接在Excel里进行!^_^
   

Section Ⅱ:如何统计合并单元格里的数据
我们再回到常识性的一点问题,在Excel里,如果是要用于统计的数据区域,是最最不建议使用“合并单元格”的,使用了合并之后,会给后续的统计或者计算带来重重麻烦,没有函数基础的人,基本上没有办法处理合并后的数据。
比如说下面左右两个表,哪一个表统计结果更简单?你都能处理吗,怎么处理?

[转载]漫谈Excel里的单元格与合并单元格


显然右边的标准一维表,才适合我们统计和分析,而左边的表只适合“看”……
而往往很多人就要追求视觉上的美丽,然后就开始折腾,折腾自己还不够,还要折腾别人。[转载]漫谈Excel里的单元格与合并单元格

想要处理合并单元格的值,很多时候是用LOOKUP函数返回内存数组,但显然是绕了一条很大的弯路。
比如说,上图左右丙个表格,如果要统计中间A、B的数量总和,各自的方法就不是有点差异,而是天壤之别。
 
对于左边的合并单元格来说,在不拆分的前提下,就必须要用LOOKUP函数返回内存数组,如:
=LOOKUP(ROW($2:$7),IF(A$2:A$7<>"",ROW($2:$7)),A$2:A$7)
 
返回中间没有空值的内存数组之后,再用SUMPRODUCT比较并求和,需要的公式如下:
=SUMPRODUCT((LOOKUP(ROW($2:$7),IF(A$2:A$7<>"",ROW($2:$7)),A$2:A$7)=D4)*B$2:B$7)
 
而相对于右边的非合并的一维表格,则不费吹灰之力了,而这个却对合并区域起不了作用:
=SUMIF(G:G,D4,H:H)
 
 
 
SectionⅢ:如何在合并单元格里进行筛选
 
另外,对于合并单元格,最常遇到的,应该要属“筛选”了!
很多人加群加论坛,求助的无非就是想知道在合并单元格的情况一怎么“筛选”,
因为没特殊处理过的合并单元格,筛选出来的结果,只能显示第一条记录,其余的都以“空”值对待,
其实,这也再次告诉你为什么外国人都不在数据区域里使用合并单元格!
(如下图所示)
 
[转载]漫谈Excel里的单元格与合并单元格

 
对于合并单元格的筛选,除了用特殊方式处理一下格式(如下面SectionⅣ)所描述的之外,
就只能用高级筛选的方式来进行,但高级筛选会操作的人已经少之又少,而如果要写能适用在合并单元格区域中的筛选条件(公式),那就更是难上加难……
以上图的数据为例,怎么利用高级筛选把我们需要的数据筛选出来呢?
高级筛选是一种什么概念呢?其实就是我们写一个没有字段名的条件,条件里用一个逻辑判断式产生TRUE或者FALSE就可以了。
首先,我们需要写这么一条公式,具体的原理跟上面提到的内存数组公式差不多,只不过在高级筛选里,我们需要的是一个自上往下生成逻辑结果的值,所以不能用内存数组,而是要根据第一行进行拆分:
=LOOKUP(ROW(2:2),IF($A$2:$A$22<>"",ROW($2:$22)),$A$2:$A2)
 
然后,选中工作表中的第一行区域,记住,必须是第一行,至于为什么,这就涉及到用数组公式进行高级筛选时的规律,这里不多说,后面将用另外的篇幅来介绍。
 
接着按Ctrl+F3进行名称定义,如定义一个叫List的名称,
回到工作表,在空白区域,上方空出一个空白单元格(空字段名)后,输入=LIST="A",
 
然后应用高级筛选,就可以筛选出A对应的所有值了……
具体操作演示如下:

[转载]漫谈Excel里的单元格与合并单元格

 
 

Section Ⅳ:如何在合并单元格里保留源有数据
当然,在Excel里,对于合并单元格,我们还有一个小技巧,就是用#格式刷#来实现合并,而不是直接用“合并”按钮,这样合并区域内的所有单元格的值,都可以原样保存,这样既可以美观也可以统计,是难得的两全其美。
具体操作如下:

[转载]漫谈Excel里的单元格与合并单元格

 
----------------------------------------------
SectionⅤ:如何批量取消合并单元格
 
对于合并单元格,上面我们提到要取消,那么怎么把工作表里的所有合并单元格一交性(批量)取消呢?
这个问题其实非常简单,只要选中你要取消合并单元格的区域或者全选单元格,然后按一下工具栏上的“合并单元格”按钮,就OK了![转载]漫谈Excel里的单元格与合并单元格
 

Section Ⅵ:如何根据首值批量填充空白单元格
 
取消合并后,我们会得出另外一个问题,就是怎么根据第一个值,批量填充空白单元格,如下图的效果:
 
[转载]漫谈Excel里的单元格与合并单元格
 
这一个小技巧的操作其实也是很简单的,具体步骤如下:
 
选中A列或者你的数据区域 →  按F5或者Ctrl+G    →    弹出“定位”对话框后,选择其他条件  →  空值  → 确定
接着回到工作表之后,直接按键盘上的=号(英文输入法状态下),以及向箭头,再按Ctrl+Enter组合键即可完成。

所以你在论坛或者其他Q群,他们的步骤简化就是:
F5  →  空值  →  = + ↑  +Ctrl+Enter
 
 
 
SectionⅦ:如何批量合并相同内容的单元格
 
下面,新的问题又来了,毕竟大千世界,无奇不有,有要取消合并的,也有要合并的,这很正常。
比如说我们说的SecionⅥ的表格,很多人就需要将相同项进行合并。
 
那么这个逆操作又要怎么进行呢?
使用较多的就是用:分类汇总+定位+格式刷
 
就是先对数据分类汇总,在新生成汇总结果的列中,有定位找到空白单元格,再一次性合并,然后移除分类汇总结果,用格式刷刷到目标区域就完成了。
 
具体过程不详述了,大家可以看下面的操作演示:
 
[转载]漫谈Excel里的单元格与合并单元格

 
 
 
------------------------------------------------------

暂告一段落吧,如果有相关的内容,再作追加![转载]漫谈Excel里的单元格与合并单元格
另外,再申明一下,除了SectionⅠ的不规则表格,是无奈之举,也是必要选择,
后面涉及到的所有“合并”的问题,虽然都介绍了处理方法,技术层面并没有什么高深,更多的让你明白这是多么的多余和徒劳无功,完全是在自己折腾自己!
所以,在实际应用中,仍然强烈建议不要使用合并单元格,尤其数据区域

 

 

Excel难题需要付费解决的,请联系我们ExcelStudio淘宝店ttp://excelstudio.taobao.com